#pragma once

BEGIN_ARETE_NAMESPACE(io)

class AESettingsManager
	: public Ogre::Singleton<AESettingsManager>
{
public:
	AESettingsManager(void);
	~AESettingsManager(void);

	void initialize(const string&,const string&);
	void loadSettings(void);

	string getSettingAsString(const string&,const string&,const string& = "");
	int getSettingAsInt(const string&,const string&,int = 0);
	float getSettingAsFloat(const string&,const string&,float = 0.0f);
	bool getSettingAsBool(const string&,const string&, bool = false);

	void setSetting(const string&,const string&,const string&);
	void saveSettings(void);

private:
	Ogre::map<string,Ogre::NameValuePairList>::type m_config_options;
	string m_config_file;
};

END_ARETE_NAMESPACE